package online.takemehand.fx;

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.*;
import javafx.scene.control.cell.PropertyValueFactory;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;



public class VBoxTableExample extends Application {
    @Override
    public void start(Stage primaryStage) {
        // 创建输入框
        TextField textField = new TextField();
        textField.setPromptText("输入文本");

        // 创建表格
        TableView<Person> tableView = new TableView<>();
        
        TableColumn<Person, String> nameColumn = new TableColumn<>("姓名");
        nameColumn.setCellValueFactory(new PropertyValueFactory<>("name"));
        nameColumn.setPrefWidth(150);

        TableColumn<Person, Number> ageColumn = new TableColumn<>("年龄");
        ageColumn.setCellValueFactory(new PropertyValueFactory<>("age"));
        ageColumn.setPrefWidth(100);

        tableView.getColumns().addAll(nameColumn, ageColumn);

        // 填充一些示例数据
        tableView.getItems().addAll(new Person("张三", 25), new Person("李四", 30));

        // 创建垂直布局并加入输入框和表格
        VBox root = new VBox();
        root.getChildren().addAll(textField, tableView);
        VBox.setVgrow(tableView, javafx.scene.layout.Priority.ALWAYS); // 表格可以自动调整大小

        // 创建场景并显示
        Scene scene = new Scene(root, 300, 200);
        primaryStage.setScene(scene);
        primaryStage.setTitle("JavaFX 布局示例");
        primaryStage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }

    // 定义Person类，表示表格数据
    public static class Person {
        private final String name;
        private final int age;

        public Person(String name, int age) {
            this.name = name;
            this.age = age;
        }

        public String getName() { return name; }
        public int getAge() { return age; }
    }
}